#pragma once

#include <SFML/Graphics.hpp>
#include "DisplayManager.h"
#include "SpriteManager.h"

class GameObject
{
	public:
		GameObject();
		~GameObject();

		virtual void Initialize();
		virtual void Cleanup();
		virtual void Update(float pDeltaTime);

		virtual void SetPosition(sf::Vector2f pvPostion);
		virtual void SetPosition(float pPosX, float pPosY);

		virtual void Move(sf::Vector2f pvOffset);
		virtual void Move(float pOffX, float pOffY);

	protected:
		DisplayManager* m_xDisplayManager;
		SpriteManager* m_xSpriteManager;

		sf::Sprite* m_xSprite;
		sf::Vector2f m_vPosition;
};